#@Authar:Litter_hui
#@time:2020/8/14  8:26
#@name:PyCharm
#---------coding:utf-8--------
from bs4 import BeautifulSoup
import re
import urllib.request
import os
import shutil
import easygui as g
def main():
    # 一级url:0风景，1美女，2游戏，3动漫，4影视，5明星，6汽车，7人物，8动物，9人物，10美食，11宗教，12背景
    baseurl_lib=['http://pic.netbian.com/4kfengjing/index','http://pic.netbian.com/4kmeinv/index','http://pic.netbian.com/4kyouxi/index',
                 'http://pic.netbian.com/4kdongman/index','http://pic.netbian.com/4kyingshi/index','http://pic.netbian.com/4kmingxing/index',
                 'http://pic.netbian.com/4kqiche/index','http://pic.netbian.com/4kdongwu/index','http://pic.netbian.com/4krenwu/index',
                 'http://pic.netbian.com/4kmeishi/index','http://pic.netbian.com/4kzongjiao/index','http://pic.netbian.com/4kbeijing/index']
    ty=gui()
    oneUrl=anasly(baseurl_lib[ty])
    link,name=getDate(oneUrl,ty)
    # print(link)
    # print(name)
    #saveDate(jpg=link,title=name,ty=ty)


#正则表达式标准
#findhref=re.compile(r'<a href=".*?"')
findhref=re.compile(r'/tupian/\d*.html')
findImg=re.compile(r'src="(/uploads/allimg/.*.jpg)"')
finfTitle=re.compile(r'title="(.*)"/>')
def getDate(oneUrl,ty):
    name=[]
    link=[]
    flag=0
    for i in range(0,len(oneUrl)):
        #一级网页
        oneHtml=askURL(oneUrl[i])
        oneSoup=BeautifulSoup(oneHtml,'html.parser')
        for item in oneSoup.find_all('ul',class_='clearfix'):
            item=str(item)
            href=re.findall(findhref,item)
            #print(href)
            #二级网页
            for j in range(0,len(href)):
                twoUrl="http://pic.netbian.com" + href[j]
                #print(twoUrl)
                twoHtml=askURL(twoUrl)
                twoSoup=BeautifulSoup(twoHtml,'html.parser')
                for src in twoSoup.find_all('div',class_='photo-pic'):
                    src=str(src)
                    jpg= "http://pic.netbian.com" + str(re.findall(findImg, src)[0])
                    title = re.findall(finfTitle, src)[0]
                    print(jpg,title)
                    name.append(title)
                    link.append(jpg)
                    if flag==0:
                        flag=1
                        if ty == 0:
                            if not os.path.exists(r'盗亦有道\风景'):
                                os.makedirs(r'盗亦有道\风景')
                            else:
                                print("重新创建")
                                shutil.rmtree(r'盗亦有道\风景')  # 空目录、有内容的目录都可以删
                                os.makedirs(r'盗亦有道\风景')
                            os.chdir(r'盗亦有道\风景')
                        elif ty == 1:
                            if not os.path.exists(r'盗亦有道\小姐姐'):
                                os.makedirs(r'盗亦有道\小姐姐')
                            else:
                                print("重新创建")
                                shutil.rmtree(r'盗亦有道\小姐姐')  # 空目录、有内容的目录都可以删
                                os.makedirs(r'盗亦有道\小姐姐')
                            os.chdir(r'盗亦有道\小姐姐')
                        elif ty == 2:
                            if not os.path.exists(r'盗亦有道\游戏'):
                                os.makedirs(r'盗亦有道\游戏')
                            else:
                                print("重新创建")
                                shutil.rmtree(r'盗亦有道\游戏')  # 空目录、有内容的目录都可以删
                                os.makedirs(r'盗亦有道\游戏')
                            os.chdir(r'盗亦有道\游戏')
                        elif ty == 3:
                            if not os.path.exists(r'盗亦有道\动漫'):
                                os.makedirs(r'盗亦有道\动漫')
                            else:
                                print("重新创建")
                                shutil.rmtree(r'盗亦有道\动漫')  # 空目录、有内容的目录都可以删
                                os.makedirs(r'盗亦有道\动漫')
                            os.chdir(r'盗亦有道\动漫')
                        elif ty == 4:
                            if not os.path.exists(r'盗亦有道\影视'):
                                os.makedirs(r'盗亦有道\影视')
                            else:
                                print("重新创建")
                                shutil.rmtree(r'盗亦有道\影视')  # 空目录、有内容的目录都可以删
                                os.makedirs(r'盗亦有道\影视')
                            os.chdir(r'盗亦有道\影视')
                        elif ty == 5:
                            if not os.path.exists(r'盗亦有道\明星'):
                                os.makedirs(r'盗亦有道\明星')
                            else:
                                print("重新创建")
                                shutil.rmtree(r'盗亦有道\明星')  # 空目录、有内容的目录都可以删
                                os.makedirs(r'盗亦有道\明星')
                            os.chdir(r'盗亦有道\明星')
                        elif ty == 6:
                            if not os.path.exists(r'盗亦有道\汽车'):
                                os.makedirs(r'盗亦有道\汽车')
                            else:
                                print("重新创建")
                                shutil.rmtree(r'盗亦有道\汽车')  # 空目录、有内容的目录都可以删
                                os.makedirs(r'盗亦有道\汽车')
                            os.chdir(r'盗亦有道\汽车')
                        elif ty == 7:
                            if not os.path.exists(r'盗亦有道\动物'):
                                os.makedirs(r'盗亦有道\动物')
                            else:
                                print("重新创建")
                                shutil.rmtree(r'盗亦有道\动物')  # 空目录、有内容的目录都可以删
                                os.makedirs(r'盗亦有道\动物')
                            os.chdir(r'盗亦有道\动物')
                        elif ty == 8:
                            if not os.path.exists(r'盗亦有道\人物'):
                                os.makedirs(r'盗亦有道\人物')
                            else:
                                print("重新创建")
                                shutil.rmtree(r'盗亦有道\人物')  # 空目录、有内容的目录都可以删
                                os.makedirs(r'盗亦有道\人物')
                            os.chdir(r'盗亦有道\人物')
                        elif ty == 9:
                            if not os.path.exists(r'盗亦有道\美食'):
                                os.makedirs(r'盗亦有道\美食')
                            else:
                                print("重新创建")
                                shutil.rmtree(r'盗亦有道\美食')  # 空目录、有内容的目录都可以删
                                os.makedirs(r'盗亦有道\美食')
                            os.chdir(r'盗亦有道\美食')
                        elif ty == 10:
                            if not os.path.exists(r'盗亦有道\宗教'):
                                os.makedirs(r'盗亦有道\宗教')
                            else:
                                print("重新创建")
                                shutil.rmtree(r'盗亦有道\宗教')  # 空目录、有内容的目录都可以删
                                os.makedirs(r'盗亦有道\宗教')
                            os.chdir(r'盗亦有道\宗教')
                        elif ty == 11:
                            if not os.path.exists(r'盗亦有道\背景'):
                                os.makedirs(r'盗亦有道\背景')
                            else:
                                print("重新创建")
                                shutil.rmtree(r'盗亦有道\背景')  # 空目录、有内容的目录都可以删
                                os.makedirs(r'盗亦有道\背景')
                            os.chdir(r'盗亦有道\背景')
                    f = open(str(title) + '.jpg', 'wb')
                    obj = urllib.request.urlopen(jpg, timeout=30).read()
                    #print('第%d抓取save over' % i)
                    f.write(obj)
                    f.close()

    return link,name

def anasly(baseurl_lib):
    url=[]
    i=0
    flag=1
    while(flag):
        if i==0:
            baseUrl=baseurl_lib+'.html'
        else:
            baseUrl=baseurl_lib+'_'+str(i+1)+'.html'
        #print(baseUrl)
        cookie='__cfduid=d670596275a1879f0ea9ad06bd23179a71596547543; Hm_lvt_526caf4e20c21f06a4e9209712d6a20e=1597370139,1597384287,1597394851,1597657599; zkhanecookieclassrecord=%2C53%2C54%2C55%2C; Hm_lpvt_526caf4e20c21f06a4e9209712d6a20e=1597657'
        head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36","Cookie":cookie}
        request = urllib.request.Request(baseUrl, headers=head)
        try:
            response = urllib.request.urlopen(request).getcode()
            # html = response.read().decode("utf-8")
            #stCode = response.read().code()
            if response==200:
                url.append(baseUrl)
                #print(url)
            # print(html)
        except urllib.error.URLError as e:
            flag=0
            pass
            # if hasattr(e, 'code'):
            #     print(e.code)
            # if hasattr(e, 'reason'):
            #     print(e.reason)
        i += 1
    return url

def gui():
    flag=0
    #g.buttonbox("如果是小姐姐，加个微信吧，下面是我，我很强壮！！！", image="1.gif", choices=("滚开，不加你！！！","嗯嗯，好的"))
    for i in range(0,100):
        if flag==1:
            break
        if g.buttonbox("如果是小姐姐，加个微信吧，下面是我，我很强壮！！！", image="1.gif", choices=("滚开，不加你！！！","嗯嗯，好的"))=="嗯嗯，好的":
            flag=1

    choicess_list = ["风景", "小姐姐", "游戏", "动漫","影视","明星","汽车","动物","人物","美食","宗教","背景"]
    reply = g.choicebox(msg='请选择你喜欢的壁纸类型', choices=choicess_list,title='小飞侠的口袋')
    if reply=='风景':
        return 0
    elif reply=='小姐姐':
        return 1
    elif reply == '游戏':
        return 2
    elif reply=='动漫':
        return 3
    elif reply=='影视':
        return 4
    elif reply=='明星':
        return 5
    elif reply=='汽车':
        return 6
    elif reply=='动物':
        return 7
    elif reply=='人物':
        return 8
    elif reply=='美食':
        return 9
    elif reply=='宗教':
        return 10
    elif reply=='背景':
        return 11


def askURL(url):
    #模拟浏览器head
    cookie = '__cfduid=d670596275a1879f0ea9ad06bd23179a71596547543; Hm_lvt_526caf4e20c21f06a4e9209712d6a20e=1597370139,1597384287,1597394851,1597657599; zkhanecookieclassrecord=%2C53%2C54%2C55%2C; Hm_lpvt_526caf4e20c21f06a4e9209712d6a20e=1597657'
    head = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
        "Cookie": cookie}
    request=urllib.request.Request(url,headers=head)

    html=""
    try:
        response=urllib.request.urlopen(request)
        #html = response.read().decode("utf-8")
        html=response.read().decode("gbk")
        #print(html)
    except urllib.error.URLError as e:
        if hasattr(e,'code'):
            print(e.code)
        if hasattr(e,'reason'):
            print(e.reason)
    return html

def saveDate(jpg,title,ty):
    path=[]
    if ty == 0:
        if not os.path.exists(r'盗亦有道\风景'):
            os.makedirs(r'盗亦有道\风景')
        else:
            print("重新创建")
            shutil.rmtree(r'盗亦有道\风景')  # 空目录、有内容的目录都可以删
            os.makedirs(r'盗亦有道\风景')
        os.chdir(r'盗亦有道\风景')
    elif ty == 1:
        if not os.path.exists(r'盗亦有道\小姐姐'):
                    os.makedirs(r'盗亦有道\小姐姐')
        else:
            print("重新创建")
            shutil.rmtree(r'盗亦有道\小姐姐')  # 空目录、有内容的目录都可以删
            os.makedirs(r'盗亦有道\小姐姐')
        os.chdir(r'盗亦有道\小姐姐')
    elif ty==2:
        if not os.path.exists(r'盗亦有道\游戏'):
            os.makedirs(r'盗亦有道\游戏')
        else:
            print("重新创建")
            shutil.rmtree(r'盗亦有道\游戏')  # 空目录、有内容的目录都可以删
            os.makedirs(r'盗亦有道\游戏')
        os.chdir(r'盗亦有道\游戏')
    elif ty==3:
        if not os.path.exists(r'盗亦有道\动漫'):
            os.makedirs(r'盗亦有道\动漫')
        else:
            print("重新创建")
            shutil.rmtree(r'盗亦有道\动漫')  # 空目录、有内容的目录都可以删
            os.makedirs(r'盗亦有道\动漫')
        os.chdir(r'盗亦有道\动漫')
    elif ty==4:
        if not os.path.exists(r'盗亦有道\影视'):
            os.makedirs(r'盗亦有道\影视')
        else:
            print("重新创建")
            shutil.rmtree(r'盗亦有道\影视')  # 空目录、有内容的目录都可以删
            os.makedirs(r'盗亦有道\影视')
        os.chdir(r'盗亦有道\影视')
    elif ty==5:
        if not os.path.exists(r'盗亦有道\明星'):
            os.makedirs(r'盗亦有道\明星')
        else:
            print("重新创建")
            shutil.rmtree(r'盗亦有道\明星')  # 空目录、有内容的目录都可以删
            os.makedirs(r'盗亦有道\明星')
        os.chdir(r'盗亦有道\明星')
    elif ty==6:
        if not os.path.exists(r'盗亦有道\汽车'):
            os.makedirs(r'盗亦有道\汽车')
        else:
            print("重新创建")
            shutil.rmtree(r'盗亦有道\汽车')  # 空目录、有内容的目录都可以删
            os.makedirs(r'盗亦有道\汽车')
        os.chdir(r'盗亦有道\汽车')
    elif ty==7:
        if not os.path.exists(r'盗亦有道\动物'):
            os.makedirs(r'盗亦有道\动物')
        else:
            print("重新创建")
            shutil.rmtree(r'盗亦有道\动物')  # 空目录、有内容的目录都可以删
            os.makedirs(r'盗亦有道\动物')
        os.chdir(r'盗亦有道\动物')
    elif ty==8:
        if not os.path.exists(r'盗亦有道\人物'):
            os.makedirs(r'盗亦有道\人物')
        else:
            print("重新创建")
            shutil.rmtree(r'盗亦有道\人物')  # 空目录、有内容的目录都可以删
            os.makedirs(r'盗亦有道\人物')
        os.chdir(r'盗亦有道\人物')
    elif ty==9:
        if not os.path.exists(r'盗亦有道\美食'):
            os.makedirs(r'盗亦有道\美食')
        else:
            print("重新创建")
            shutil.rmtree(r'盗亦有道\美食')  # 空目录、有内容的目录都可以删
            os.makedirs(r'盗亦有道\美食')
        os.chdir(r'盗亦有道\美食')
    elif ty==10:
        if not os.path.exists(r'盗亦有道\宗教'):
            os.makedirs(r'盗亦有道\宗教')
        else:
            print("重新创建")
            shutil.rmtree(r'盗亦有道\宗教')  # 空目录、有内容的目录都可以删
            os.makedirs(r'盗亦有道\宗教')
        os.chdir(r'盗亦有道\宗教')
    elif ty==11:
        if not os.path.exists(r'盗亦有道\背景'):
            os.makedirs(r'盗亦有道\背景')
        else:
            print("重新创建")
            shutil.rmtree(r'盗亦有道\背景')  # 空目录、有内容的目录都可以删
            os.makedirs(r'盗亦有道\背景')
        os.chdir(r'盗亦有道\背景')
    for i in range(0, len(jpg)):
        f = open(str(title[i]) + '.jpg', 'wb')
        jpg=jpg[i]
        print(jpg)
        obj= urllib.request.urlopen(jpg,timeout=30).read()
        print('第%d抓取save over' %i)
        f.write(obj)
        f.close()


    print('save over')

if __name__ == '__main__':
    main()

